<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>变量提升</title>
</head>
<body>
    <script>
console.log(this instanceof Object);
// ——————————————————————————————————————————————————————————————————————

// function foo() {
//     console.log(a); //ReferenceError: a is not defined
//     a = 1;
// }
// foo(); 
// 函数中并没有a的变量，也没有通过var关键字声明变量。没有a 的值然后去全局找，全局也没有，然后就报错。

// ——————————————————————————————————————————————————————————————————————

// function foo() {
//     a = 1;
//     console.log(a); //1
// }
// foo();
// 当代码执行到console的时候，全局对象已经被赋予了a的属性，可以从全局对象找到a的值，所以打印1 

// ————————————————————————————————————————————————————————————————————————————————————
console.log(foo);//打印函数，不是undefined

function foo(){
    console.log("foo");
}
var foo = 1;
console.log(foo);//1
// 在执行上下文时，首先会处理函数声明，其次在处理变量声明，如果变量名称跟已经声明的形式参数或函数相同，
// 则变量声明不会干扰已经存在的这类属性















    </script>
</body>
</html>